let connectToWebSocketServer = (
  url: string = "ws://127.0.0.1:3001",
  onOpen?: () => void,
  onMessage?: (message: string) => void,
  onClose?: () => void
): WebSocket => {
  // 创建WebSocket连接
  const socket = new WebSocket(url);

  // 监听连接成功事件
  socket.onopen = () => {
    console.log(url + " 连接成功");
    if (onOpen) {
      onOpen();
    }
  };

  // 监听接收消息事件
  socket.onmessage = (event: MessageEvent) => {
    console.log("接收到消息:", event.data);
    if (onMessage) {
      onMessage(event.data);
    }
  };

  // 监听连接关闭事件
  socket.onclose = () => {
    console.log(url + "连接关闭");
    if (onClose) {
      onClose();
    }
  };

  // 返回WebSocket对象，以便在其他地方进行操作
  return socket;
};

// 封装发送消息函数
let sendMessage = (socket: WebSocket, message: string): void => {
  socket.send(message);
};

export default {
  connectToWebSocketServer,
  sendMessage,
};
// // 调用函数来连接至WebSocket服务器并发送自定义消息
// const socket: WebSocket = connectToWebSocketServer(
//   "ws://example.com/socket",
//   onOpen,
//   onMessage,
//   onClose
// );

// // 调用函数发送自定义消息
// sendMessage(socket, "Hello Server");

// // 定义连接成功事件的处理函数
// function onOpen(): void {
//   console.log("连接已建立");
//   // 执行其他操作
// }

// // 定义接收消息事件的处理函数
// function onMessage(message: string): void {
//   console.log("接收到消息:", message);
//   // 调用处理接收到的消息的函数
// }

// // 定义连接关闭事件的处理函数
// function onClose(): void {
//   console.log("连接已关闭");
//   // 执行其他操作
// }
